<?xml version="1.0" encoding="UTF-8" ?>
<class name="BitMap" inherits="Resource" category="Core" version="3.0.alpha.custom_build">
	<brief_description>
		Boolean matrix.
	</brief_description>
	<description>
		A two-dimensional array of boolean values, can be used to efficiently store a binary matrix (every matrix element takes only one bit) and query the values using natural cartesian coordinates.
	</description>
	<tutorials>
	</tutorials>
	<demos>
	</demos>
	<methods>
		<method name="create">
			<return type="void">
			</return>
			<argument index="0" name="size" type="Vector2">
			</argument>
			<description>
				Creates a bitmap with the specified size, filled with false.
			</description>
		</method>
		<method name="create_from_image_alpha">
			<return type="void">
			</return>
			<argument index="0" name="image" type="Image">
			</argument>
			<description>
				Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to false if the alpha value of the image at that position is 0, and true in other case.
			</description>
		</method>
		<method name="get_bit" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="position" type="Vector2">
			</argument>
			<description>
				Returns bitmap's value at the specified position.
			</description>
		</method>
		<method name="get_size" qualifiers="const">
			<return type="Vector2">
			</return>
			<description>
				Returns bitmap's dimensions.
			</description>
		</method>
		<method name="get_true_bit_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the amount of bitmap elements that are set to true.
			</description>
		</method>
		<method name="set_bit">
			<return type="void">
			</return>
			<argument index="0" name="position" type="Vector2">
			</argument>
			<argument index="1" name="bit" type="bool">
			</argument>
			<description>
				Sets the bitmap's element at the specified position, to the specified value.
			</description>
		</method>
		<method name="set_bit_rect">
			<return type="void">
			</return>
			<argument index="0" name="p_rect" type="Rect2">
			</argument>
			<argument index="1" name="bit" type="bool">
			</argument>
			<description>
				Sets a rectangular portion of the bitmap to the specified value.
			</description>
		</method>
	</methods>
	<members>
		<member name="data" type="Dictionary" setter="_set_data" getter="_get_data">
			Returns a [Dictionary] with two keys :
			[code]data[/code] : [PoolByteArray] with [code]true[/code]/[code]false[/code] [code]BitMap[/code] data.
			[code]size[/code] : The [code]Bitmap[/code]'s size.
		</member>
	</members>
	<constants>
	</constants>
</class>
